#!/bin/bash

# Name: 段锦涛
# Desc: 修改文件和目录权限
# Example: 
# Usage: sudo允许或在root权限下允许
# Update: 2023-09-20


# 检查 /data/wwwroot/app 目录下所有文件和目录，看是否满足下面条件
# 1. 所有文件权限为644
# 2. 所有目录权限为755
# 3. 文件和目录所有者为www, 所属组为root
# 如果不满足，改为满足，注意不要直接改权限，要有判断过程



cd /data/www/app

# 遍历该目录下的所有文件或目录, 使用" find . "
for f in `find .`
do 
	# 查看文件或目录权限
	f_p=`stat -c %a $f`
	# 查看文件所有者
	f_u=`stat -c %U $f`
	# 查看文件所属组
	f_g=`stat -c %G $f`

	# 判断是否为目录
	if [ -d $f ]
	then
		[ $f_p != '755' ] && chmod 755 $f
	else
		[ $f_p != '644' ] && chmod 644 $f
	fi

	# && 用在两条命令中间，可以起到if判断的作用
	# 当前一条命令执行成功后，才会执行后面的命令

	# || 用在两条命令中间，可以起到if判断的作用
	# 当前一条命令执行失败后，才会执行后面的命令
	[ $f_u != 'www' ] && chown www $f
	[ $f_g != 'root' ] && chown :root $f
done


<<'COMMENT'
总结：
1. 查看文件权限： stat -c %a 1.txt
2. 查看文件属组： stat -c %G 1.txt
3. 查看文件所有者： stat -c %U 1.txt
4. && 可以实现if的效果，前一条命令成功后再执行后面的命令
5. || 可以实现if的效果，前一条命令失败后再执行后面的命令

COMMENT